define(function(require){

    require('../../../c/base/index');

    require('../../../c/nav/index');

    var openedTable, notOpenedTable;

    var City = {
        init : function() {
            //初始化菜单选中效果
            $(".fa-circle-o").each(function(){
                if($(this).parents("a").text() == "增开城市"){
                    $(this).parents("a").parents("li").addClass("active");
                }
            });
            this.initOpenedTable();
            this.initNotOpenedTable();
            this.getAllCities();
        },
        /**
         * 初始化已开通城市列表datatable
         */
        initOpenedTable : function() {
            openedTable = $("#opened_table").dataTable({
                "oLanguage": CRM.pageConfig,
                "sScrollX": "100%",   //表格的宽度
                "sScrollXInner": "100%",   //表格的内容宽度
                "bScrollCollapse": true,  //当显示的数据不足以支撑表格的默认的高度时，依然显示纵向的滚动条。(默认是false)
                "bPaginate": false,  //是否显示分页
                "bLengthChange": false,  //每页显示的记录数
                "bFilter": false, //搜索栏
                "bSort": false, //是否支持排序功能
                "bInfo": false, //显示表格信息
                "bAutoWidth": false,  //自适应宽度
                "bServerSide": false,//开启服务端处理
                "aaSorting": [[1, "asc"]],  //给列表排序 ，第一个参数表示数组 (由0开始)。1 表示Browser列。第二个参数为 desc或是asc
                "aoColumns": [
                    {
                        "bSortable": false
                    },
                    {
                        "bSortable": false,
                        "mRender": function (data, type, row) {
                            return " <a class='btn btn-success' href='javascript:;'>已开通</a>";
                        }
                    }

                ], //列设置，表有几列，数组就有几项
                "bStateSave": true, //保存状态到cookie *************** 很重要 ， 当搜索的时候页面一刷新会导致搜索的消失。使用这个属性就可避免了
                "sPaginationType": "full_numbers" //分页，一共两种样式，full_numbers和two_button(默认)

            });
        },
        /**
         * 初始化未开通城市列表datatable
         */
        initNotOpenedTable : function() {
            notOpenedTable = $("#not_opened_table").dataTable({
                "oLanguage": CRM.pageConfig,
                "sScrollX": "100%",   //表格的宽度
                "sScrollXInner": "100%",   //表格的内容宽度
                "bScrollCollapse": true,  //当显示的数据不足以支撑表格的默认的高度时，依然显示纵向的滚动条。(默认是false)
                "bPaginate": false,  //是否显示分页
                "bLengthChange": false,  //每页显示的记录数
                "bFilter": false, //搜索栏
                "bSort": false, //是否支持排序功能
                "bInfo": false, //显示表格信息
                "bAutoWidth": false,  //自适应宽度
                "bServerSide": false,//开启服务端处理
                "aaSorting": [[1, "asc"]],  //给列表排序 ，第一个参数表示数组 (由0开始)。1 表示Browser列。第二个参数为 desc或是asc
                "aoColumns": [
                    {"bSortable": false},
                    {
                        "bSortable": false,
                        "mRender": function (data, type, row) {
                            return "<a class='btn btn-danger' href='javascript:openCity(\"" + data
                                + "\");'>开  通</a>";
                        }
                    }

                ], //列设置，表有几列，数组就有几项
                "bStateSave": true, //保存状态到cookie *************** 很重要 ， 当搜索的时候页面一刷新会导致搜索的消失。使用这个属性就可避免了
                "sPaginationType": "full_numbers" //分页，一共两种样式，full_numbers和two_button(默认)

            });
        },
        getAllCities : function() {
            notOpenedTable.fnClearTable();
            openedTable.fnClearTable();
            $.ajax({
                url: CRM.getOuterUrl('/shop/city/getAllCities'),
                contentType: "application/json",
                dataType: "json",   //返回格式为json
                async: true, //请求是否异步，默认为异步，这也是ajax重要特性
                data: JSON.stringify({}),   //参数值
                type: "POST",   //请求方式
                xhrFields: {
                    withCredentials: true
                },
                success: function (req) {
                    //请求成功时处理
                    if (req.responseCode && req.status) {
                        if (req.entry) {
                            var openedList = new Array();
                            var notOpendList = new Array();
                            for (var length in req.entry) {
                                if (req.entry[length].onsell == "1") {
                                    openedList.push([req.entry[length].city, req.entry[length].city]);
                                } else {
                                    notOpendList.push([req.entry[length].city, req.entry[length].city]);
                                }
                            }
                            openedTable.fnAddData(openedList);
                            notOpenedTable.fnAddData(notOpendList);
                        }
                    } else {
                        $("#msg_dialog_content").text(req.message);
                        $('#msg_dialog').modal('show');
                    }
                },
                error: function (e) {
                    //请求出错处理
                    $("#msg_dialog_content").text("请求服务异常！");
                    $('#msg_dialog').modal('show');
                }
            });
        },
        /**
         * 开通城市
         * @param cityName
         */
        openCity : function(cityName, btn) {
            $('#comfirm').unbind("click");
            $("#comfirm").on('click', function () {
                $('#confirm_dialog').modal('hide');
                $.ajax({
                    url: CRM.getOuterUrl('/shop/city/updateToLive'),
                    contentType: "application/json",
                    dataType: "json",   //返回格式为json
                    async: true, //请求是否异步，默认为异步，这也是ajax重要特性
                    data: JSON.stringify({
                        "cityName": cityName,
                        "operator": $.cookie('_uk')
                    }),   //参数值
                    type: "POST",   //请求方式
                    xhrFields: {
                        withCredentials: true
                    },
                    success: function (req) {
                        //请求成功时处理
                        $("#msg_dialog_content").text(req.message);
                        $('#msg_dialog').modal('show');
                        $('#msg_dialog').on('hidden.bs.modal', function (e) {
                            // do something...
                            getAllCities();
                        });
                    },
                    error: function (e) {
                        //请求出错处理
                        $("#msg_dialog_content").text("请求服务异常！");
                        $('#msg_dialog').modal('show');
                    }
                });
            });
            $("#confirm_dialog_content").text("确定开通城市'" + cityName + "'");
            $('#confirm_dialog').modal('show');
        }
    };

    window.openCity = City.openCity;

    City.init();
});